<?php
// +----------------------------------------------------------------------
// | 跃飞 [ 将来的你一定会感激现在奋斗的自己 ]
// +----------------------------------------------------------------------
// | Author: 钟贵廷
// +----------------------------------------------------------------------
// | Author URI: https://git.oschina.net/yeafy
// +----------------------------------------------------------------------
// | weChat:gt845272922  qq:845272922
// +----------------------------------------------------------------------
namespace app\yeafy\strategy\demo2;

class ContextItem
{
    private $item; // 用户存储一个策略类的引用，最终返还给客户端调用。

    /**
     * 描述:通过反射的方式去获取类的对象跟方法，这个设计好牛哦
     * @author 钟贵廷
     * @WeChat gt845272922
     * @qq 845272922
     * @param $item_name
     * @param $fun_name
     */
    public function getItem($item_name, $fun_name)
    {
        //通过系统 ReflectionClass方法获得类的各项参数
        $class      = new \ReflectionClass($item_name);
        //再通过系统 newInstance方法实例化一个类
        $this->item = $class->newInstance();
         //根据方法名调用对应的算法或行为
        $this->item->$fun_name();
    }
}